package com.demo.nio;

import javax.sound.midi.Soundbank;
import java.nio.IntBuffer;

/**
 * @author gy
 * @date 2022/5/14
 * 说明buffer的基本使用
 */
public class BasicBuffer {
    public static void main(String[] args) {

        // 举例说明 Buffer的使用
        // 创建一个Buffer，大小为5，可以存放5个int
        IntBuffer intBuffer = IntBuffer.allocate(5);

        // 向buffer 存放数据
//        intBuffer.put(10);
//        intBuffer.put(10);
//        intBuffer.put(10);
//        intBuffer.put(10);
//        intBuffer.put(10);
//        intBuffer.put(10);

        for (int i = 0; i < intBuffer.capacity(); i++) {
            intBuffer.put(i * 2);
        }

        // 如何从buffer读取数据
        // 将buffer 转化，读写切换！！！ 非常重要
//        limit = position;
//        position = 0;
//        mark = -1;
//        return this;
        intBuffer.flip();
        intBuffer.position(1);
        intBuffer.limit(3);

        while (intBuffer.hasRemaining()) {
            // get() 方法中维护了索引，每次读取，索引都会移动
            System.out.println(intBuffer.get());
        }

    }
}
